package com.sai.transacciones;

import com.sai.clases.Rubro;
import com.sai.conexion.PoolConexion;
import com.sai.sql.SqlRubro;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class TRubro {
    private static ConexionBD Conex;
    private String parcial, materia,descripcion,profesor,id;
    
     public TRubro(String pa, String m,String d, String p)
    {
        this.parcial = pa;
        this.materia = m;
        this.descripcion = d;
        this.profesor = p;
        
    }
    
    public TRubro(){
        parcial ="";
        materia ="";
        descripcion="";
        profesor="";  
        id="";
    }
    public static String Consultar() {
      
        Connection conex = (Connection) PoolConexion.getInstance().getConexion();
        String tablaAutores;

        try {
            PoolConexion.getInstance().commit(conex);
            PreparedStatement stm = null;
            ResultSet rs = null;

            stm = (PreparedStatement) conex.prepareStatement(SqlRubro.SELECT_ALL);
            rs = stm.executeQuery();

            tablaAutores = "<table align='center' border='1' color='red'>"
                + "<tr>"
                + "<th>Parcial</th>"
                + "<th>Descripcion</th>"
                + "<th>Materia</th>"
                + "<th>Profesor</th>"
                + "</tr>";

            while (rs.next()) {
                tablaAutores += "<tr>"
                        + "<td>" + rs.getString(2) + "</td>"
                        + "<td>" + rs.getString(3) + "</td>"
                        + "<td>" + rs.getString(4) + "</td>"
                        + "<td>" + rs.getString(5) + "</td>"
                        + "<td>"+"<button type='button' name='btnActualizarr'"
                        + "onclick='busquedaRubro("+rs.getInt(1)+");'>Actualizar</button></td>"
                        + "<td>"+"<button type='button' name='btnEliminar'"
                        + "onclick='borrarRubro("+rs.getInt(1)+");'>Eliminar</button></td>"
                        + "</tr>";
                        
            }
            tablaAutores += "</table>";
        } catch (SQLException ex) {
            return "No existe usuario.";
        } finally {
            PoolConexion.getInstance().cerrarConexion(conex);
        }
        return tablaAutores;
    }
    
    public static String Registrar(Rubro rubro) {
        Connection conex = (Connection) PoolConexion.getInstance().getConexion();
        String resp = null;

        try{
            PoolConexion.getInstance().beginTransaction(conex);
            
            PreparedStatement stm = null;
            stm = (PreparedStatement) conex.prepareStatement(SqlRubro.INSERT);
            stm.setString(1, rubro.getParcial());
            stm.setString(2, rubro.getDescripcion());
            stm.setString(3, rubro.getMateria());
            stm.setString(4, rubro.getProfesor());
               
            stm.executeUpdate();
            PoolConexion.getInstance().commit(conex);
            PoolConexion.getInstance().endTransaction(conex);
            resp = "OK";
        } catch (SQLException ex) {
            return "Error al registrar el Rubro." + ex;
        } finally {
            PoolConexion.getInstance().cerrarConexion(conex);
        }
        return resp;
    }
     
     public boolean Buscar(String id){
    ResultSet consulta=null;
    try{
        Conex = ConexionBD.getInstancia("websai","root","");
         if(!Conex.OpenCon())
            return false;
        }catch(ClassNotFoundException ex){
            return false;
        }  try {
           consulta= Conex.getSentencia().executeQuery("select * from rubros where idRubros= "+id);
            if(consulta.first()){
                this.id=id;
                this.parcial=consulta.getString(2);
                this.descripcion=consulta.getString(3);
                this.materia=consulta.getString(4);
                this.profesor=consulta.getString(5);
                
            }
        } catch (SQLException ex) {
            return false;
        } 
       return true;
    }
    
   
    @Override
    public String toString() {
        String xml="<?xml version='1.0' ?>";
        xml+="<rubro>"
                    +"<estado>OK</estado>"
                    +"<id>"+id+"</id>"
                    +"<parcial>"+parcial+"</parcial>"
                    +"<descripcion>"+descripcion+"</descripcion>"
                    +"<materia>"+materia+"</materia>" 
                    +"<profesor>"+profesor+"</profesor>"
                    +"</rubro>";
             return xml;
//        return "Servicio{" + "tipo=" + tipo + ", descripcion=" + descripcion + ", costo=" + costo + ", id=" + id + '}';
    }
    
     public boolean Eliminar(String id){
  
    try{
        Conex = ConexionBD.getInstancia("websai","root","");
         if(!Conex.OpenCon())
            return false;
        }catch(ClassNotFoundException ex){
            return false;
        }  try {
           Conex.getSentencia().executeUpdate("delete from rubros where idRubros="+id);
            
        } catch (SQLException ex) {
            return false;
        } 
       return true;
    }
    
      public  String Modificar(String id){
       String sql;
        try{
        Conex = ConexionBD.getInstancia("autolavado","root","");
        if(!Conex.OpenCon())
            return "Error: No se pudo abrir la conexión";
        }catch(ClassNotFoundException ex){
            return "Error: "+ex.getMessage();
        }
        sql = "update servicios set parcial='"+this.parcial+"',materia='"+ this.materia+"',descripcion='"+
            this.descripcion+"',profesor='"+ this.profesor+"' where idRubro="+id;
        
        try{
            Conex.getSentencia().executeUpdate(sql);
        }catch(SQLException er){
            return "ERROR: "+er.getMessage();
        }
        return "El servicio se modifico correctamente, "+parcial+", "+descripcion+" ,"+profesor;
    }
   
}
